/* ******************************************************** */
/* Arcans Project (2010)                                    */
/* Jeu sous forme d'application web entièrement conçu       */
/* et réalisé par Killian Le Maitre                         */
/* Jeu sous licence GNU GPL v3 (voir NOTICE et COPYING)     */
/* ******************************************************** */

//classe statique javascript d'inscription
var obj_inscrip = {
	//méthodes :
	openIns: function() {
		window.scrollTo(0,0);
		document.body.style.overflow = "hidden";
		var voile = document.getElementById("voile");
		voile.style.display = "block";
		var encart = document.getElementById("encart");
		encart.style.display = "block";
		for (var i = 0;i < 9;i++) window.setTimeout("document.getElementById('voile').style.opacity = 0." + i, 50*i);
		obj_inscrip.openInsC();
	},
	openInsC: function () {
		var encart = document.getElementById("encart");
		encart.style.top = "-360px";
		encart.style.left = "550px";
		encart.style.width = "400px";
		for (var i = 0;i < 9;i++) {
			var temp = -360 + i*50;
			window.setTimeout("document.getElementById('encart').style.top = '" + temp + "px';", 50*i);
		}
		var main_div = document.createElement("div");
		//titre
		var crea_child1 = document.createElement("h3");
		crea_child1.appendChild(document.createTextNode("Inscription :"));
		main_div.appendChild(crea_child1);
		//texte 1
		crea_child1 = document.createElement("p");
		crea_child1.appendChild(document.createTextNode("Tous les champs sont à remplir obligatoirement. Seuls les caractères alphanumériques, ainsi que les tirets et le point, sont autorisés."));
		main_div.appendChild(crea_child1);
		//texte 2
		crea_child1 = document.createElement("p");
		crea_child1.appendChild(document.createTextNode("Votre mot de passe est généré aléatoirement et vous sera fourni par courrier électronique."));
		main_div.appendChild(crea_child1);
		//zone erreur
		crea_child1 = document.createElement("p");
		crea_child1.setAttribute("id", "result");
		main_div.appendChild(crea_child1);
		//tableau
		crea_child1 = document.createElement("label");
		crea_child1.setAttribute("for", "pseudo");
		crea_child1.appendChild(document.createTextNode("Pseudonyme : "));
		var crea_child2 = document.createElement("td");
		crea_child2.appendChild(crea_child1);
		crea_child1 = document.createElement("input");
		crea_child1.setAttribute("id", "pseudo");
		crea_child1.setAttribute("maxlength", "15");
		var crea_child3 = document.createElement("td");
		crea_child3.appendChild(crea_child1);
		var button = document.createElement("input");
		button.setAttribute("type", "button");
		button.setAttribute("class", "button");
		button.setAttribute("value", "Vérifier");
		button.setAttribute("onclick", "javascript:obj_inscrip.pseudoVerif();");
		var crea_child4 = document.createElement("td");
		crea_child4.appendChild(button);
		var crea_child5 = document.createElement("tr");
		crea_child5.appendChild(crea_child2);
		crea_child5.appendChild(crea_child3);
		crea_child5.appendChild(crea_child4);
		crea_child1 = document.createElement("label");
		crea_child1.setAttribute("for", "email");
		crea_child1.appendChild(document.createTextNode("Adresse électronique :"));
		crea_child2 = document.createElement("td");
		crea_child2.appendChild(crea_child1);
		crea_child1 = document.createElement("input");
		crea_child1.setAttribute("id", "email");
		crea_child3 = document.createElement("td");
		crea_child3.appendChild(crea_child1);
		crea_child1 = document.createElement("tr");
		crea_child1.appendChild(crea_child2);
		crea_child1.appendChild(crea_child3);
		crea_child2 = document.createElement("table");
		crea_child2.appendChild(crea_child5);
		crea_child2.appendChild(crea_child1);
		main_div.appendChild(crea_child2);
		//bouton de validation
		button = document.createElement("input");
		button.setAttribute("type", "button");
		button.setAttribute("value", "Valider");
		button.setAttribute("class", "button");
		button.setAttribute("onclick", "javascript:obj_inscrip.insValid();");
		main_div.appendChild(button);
		//bouton d'annulation
		button = document.createElement("input");
		button.setAttribute("type", "button");
		button.setAttribute("value", "Annuler");
		button.setAttribute("class", "button");
		button.setAttribute("onclick", "javascript:obj_inscrip.insClose();");
		main_div.appendChild(button);
		//lien pour l'email
		crea_child1 = document.createElement("a");
		crea_child1.setAttribute("href", "#");
		crea_child1.setAttribute("onclick", "javascript:obj_inscrip.insErrmail(1);");
		crea_child1.appendChild(document.createTextNode("Vous n'avez pas reçu le courrier électronique ? Cliquez sur ce lien."));
		crea_child2 = document.createElement("p");
		crea_child2.appendChild(crea_child1);
		main_div.appendChild(crea_child2);
		encart.appendChild(main_div);
	},
	insClose: function () {
		for (var i = 0; i < 9; i++) {
			window.setTimeout("document.getElementById('voile').style.opacity = 0." + (8 - i), 50*i);
			var temp = 40 - i*50;
			window.setTimeout("document.getElementById('encart').style.top = '" + temp + "px';", 50*i);
		}
		window.setTimeout("document.getElementById('encart').removeChild(document.getElementById('encart').firstChild);", 399);
		window.setTimeout("document.getElementById('voile').style.display = 'none'", 400);
		window.setTimeout("document.getElementById('encart').style.display = 'none'", 400);
		document.body.style.overflow = "auto";
	},
	pseudoVerif: function () {
		var result = document.getElementById("result");
		if (result.hasChildNodes()) result.removeChild(result.firstChild);
		var pseudo = document.getElementById("pseudo").value;
		var regpseudo = new RegExp(/^[\w]+[\w\-\.]{2,}$/);
		if (regpseudo.test(pseudo)) {
			//requete ajax de vérification de non doublon
			try { var xhr = new ActiveXObject('Msxml2.XMLHTTP'); }
			catch (e) {
				try { var xhr = new ActiveXObject('Microsoft.XMLHTTP'); }
				catch (e2) {
					try { var xhr = new XMLHttpRequest(); }
					catch (e3) { var xhr = false; }
				}
			}
			//xhr fonction
			xhr.onreadystatechange = function() {
				if(xhr.readyState  == 4) {
					if(xhr.status  == 200) {
						var res = xhr.responseText;
						if (res == 0) {
							result.appendChild(document.createElement("span"));
							result.firstChild.setAttribute("class", "valid");
							result.firstChild.appendChild(document.createTextNode("Vérification du pseudonyme terminé, pseudonyme disponible."));
						}
						else {
							result.appendChild(document.createElement("span"));
							result.firstChild.setAttribute("class", "erreur");
							result.firstChild.appendChild(document.createTextNode("Le pseudonyme est déjà utilisé."));
						}
					}
				}
			}
			//lancement de l'ajax
			xhr.open( "POST", "?p=ains",  true);
			xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			var donnees = 'info=' + pseudo;
			xhr.send(donnees);
		}
		else {
			var result = document.getElementById("result");
			var erreur = document.createElement("span");
			erreur.setAttribute("class", "erreur");
			erreur.appendChild(document.createTextNode("Le pseudonyme doit contenir au moins trois caractères alphanumériques, accompagné du point et des tirets, et doit commencer par une lettre."));
			result.appendChild(erreur);
		}
	},
	insValid: function () {
		var result = document.getElementById("result");
		if (result.hasChildNodes()) result.removeChild(result.firstChild);
		var pseudo = document.getElementById("pseudo").value;
		var email = document.getElementById("email").value;
		var regpseudo = new RegExp(/^[\w]+[\w\-\.]{2,}$/);
		var regemail = new RegExp(/^[a-zA-Z0-9]+([_|\.|-]{1}[a-zA-Z0-9]+)*@[a-zA-Z0-9]+([_|\.|-]­{1}[a-zA-Z0-9]+)*[\.]{1}[a-z]{2,6}$/);
		if (regpseudo.test(pseudo)) {
			if (regemail.test(email)) {
				//requete ajax de vérification de non doublon
				//vérification des logs
				try { var xhr = new ActiveXObject('Msxml2.XMLHTTP'); }
				catch (e) {
					try { var xhr = new ActiveXObject('Microsoft.XMLHTTP'); }
					catch (e2) {
						try { var xhr = new XMLHttpRequest(); }
						catch (e3) { var xhr = false; }
					}
				}
				//xhr fonction
				xhr.onreadystatechange = function() {
					if(xhr.readyState  == 4) {
						if(xhr.status  == 200) {
							var res = xhr.responseText;
							if (res == 0) {
								//requete ajax d'enregistrement
								try { var xhr2 = new ActiveXObject('Msxml2.XMLHTTP'); }
								catch (e4) {
									try { var xhr2 = new ActiveXObject('Microsoft.XMLHTTP'); }
									catch (e5) {
										try { var xhr2 = new XMLHttpRequest(); }
										catch (e6) { var xhr2 = false; }
									}
								}
								xhr2.onreadystatechange = function() {
									if (xhr2.readyState == 4) {
										if (xhr2.status == 200) {
											var encart = document.getElementById('encart');
											//fermeture de l'encart
											var rem_child = encart.firstChild;
											encart.removeChild(rem_child);
											window.setTimeout('encart.appendChild(document.createElement("div"));', 260);
											window.setTimeout('encart.firstChild.appendChild(document.createElement("h3"));', 270);
											window.setTimeout('encart.firstChild.firstChild.appendChild(document.createTextNode("Inscription :"));', 300);
											window.setTimeout('var para = document.createElement("p");', 310);
											window.setTimeout('para.setAttribute("class", "valid");', 320);
											window.setTimeout('para.appendChild(document.createTextNode("Enregistrement réussi. Vous allez recevoir un courrier électronique de validation."));', 360);
											window.setTimeout('encart.firstChild.appendChild(para);', 380);
											window.setTimeout("obj_inscrip.insClose();", 1900);
										}
									}
								}
								//lancement de l'ajax
								xhr2.open("POST", "?p=ains2", true);
								xhr2.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
								var infos_ins = 'info1=' + pseudo + '&info2=' + email;
								xhr2.send(infos_ins);
							}
							else {
								result.appendChild(document.createElement("span"));
								result.firstChild.setAttribute("class", "erreur");
								result.firstChild.appendChild(document.createTextNode("Le pseudonyme est déjà utilisé."));
							}
						}
					}
				}
				//lancement de l'ajax
				xhr.open( "POST", "?p=ains",  true);
				xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
				var donnees = 'info=' + pseudo;
				xhr.send(donnees);
			}
			else {
				result.appendChild(document.createElement("span"));
				result.firstChild.setAttribute("class", "erreur");
				result.firstChild.appendChild(document.createTextNode("L'adresse électronique n'est pas valide."));
			}
		}
		else {
			result.appendChild(document.createElement("span"));
			result.firstChild.setAttribute("class", "erreur");
			result.firstChild.appendChild(document.createTextNode("Le pseudonyme doit contenir au moins trois caractères alphanumériques, accompagné du point et des tirets, et doit commencer par une lettre."));
		}
	},
	insErrmail: function () {
		//fermeture de l'encart
		for (var i = 0; i < 9; i++) {
			var temp = 40 - i*50;
			window.setTimeout("document.getElementById('encart').style.top = '" + temp + "px';", 50*i);
		}
		//ouverture de l'encart
		window.setTimeout("document.getElementById('encart').removeChild(document.getElementById('encart').firstChild);", 499);
		window.setTimeout("obj_inscrip.insErrmailC();", 500);
	},
	insErrmailC: function () {
		var encart = document.getElementById("encart");
		encart.style.display = "block";
		encart.style.top = "-360px";
		encart.style.left = "550px";
		encart.style.width = "450px";
		for (var i = 0;i < 9;i++) {
			var temp = -360 + i*50;
			window.setTimeout("document.getElementById('encart').style.top = '" + temp + "px';", 50*i);
		}
		//remplissage de l'encart
		var main_div = document.createElement("div");
		//titre
		var crea_child1 = document.createElement("h3");
		crea_child1.appendChild(document.createTextNode("Inscription : (renvoi du courrier)"));
		main_div.appendChild(crea_child1);
		//texte 1
		crea_child1 = document.createElement("p");
		crea_child1.appendChild(document.createTextNode("Cet encart va vous permettre de générer un nouveau courrier électronique pour obtenir vos informations d'accès. Le mot de passe va être modifié suite à cette opération."));
		main_div.appendChild(crea_child1);
		//texte 2
		crea_child1 = document.createElement("p");
		crea_child1.appendChild(document.createTextNode("Il est possible que le courrier soit rangé parmi les spam. Si vous ne recevez toujours pas vos informations, prenez contact avec l'administrateur du site."));
		main_div.appendChild(crea_child1);
		//zone d'erreur
		crea_child1 = document.createElement("p");
		crea_child1.setAttribute("id", "result");
		main_div.appendChild(crea_child1);
		//table
		crea_child1 = document.createElement("label");
		crea_child1.setAttribute("for", "pseudo");
		crea_child1.appendChild(document.createTextNode("Pseudonyme : "));
		var crea_child2 = document.createElement("td");
		crea_child2.appendChild(crea_child1);
		crea_child1 = document.createElement("input");
		crea_child1.setAttribute("maxlength", "15");
		crea_child1.setAttribute("id", "pseudo");
		var crea_child3 = document.createElement("td");
		crea_child3.appendChild(crea_child1);
		crea_child1 = document.createElement("tr");
		crea_child1.appendChild(crea_child2);
		crea_child1.appendChild(crea_child3);
		crea_child2 = document.createElement("label");
		crea_child2.setAttribute("for", "email");
		crea_child2.appendChild(document.createTextNode("Adresse électronique : "));
		crea_child3 = document.createElement("td");
		crea_child3.appendChild(crea_child2);
		crea_child2 = document.createElement("input");
		crea_child2.setAttribute("id", "email");
		var crea_child4 = document.createElement("td");
		crea_child4.appendChild(crea_child2);
		crea_child2 = document.createElement("tr");
		crea_child2.appendChild(crea_child3);
		crea_child2.appendChild(crea_child4);
		crea_child3 = document.createElement("table");
		crea_child3.appendChild(crea_child1);
		crea_child3.appendChild(crea_child2);
		main_div.appendChild(crea_child3);
		//bouton de validation
		var button = document.createElement("input");
		button.setAttribute("type", "button");
		button.setAttribute("class", "button");
		button.setAttribute("value", "Valider");
		button.setAttribute("onclick", "javascript:obj_inscrip.insVMail();");
		main_div.appendChild(button);
		//bouton d'annulation
		button = document.createElement("input");
		button.setAttribute("type", "button");
		button.setAttribute("class", "button");
		button.setAttribute("value", "Annuler");
		button.setAttribute("onclick", "javascript:obj_inscrip.canInsMail();");
		main_div.appendChild(button);
		//finalisation
		encart.appendChild(main_div);
	},
	insVMail: function () {
		var result = document.getElementById("result");
		if (result.hasChildNodes()) result.removeChild(result.firstChild);
		var regpseudo = new RegExp(/^[\w]+[\w\-\.]{2,}$/);
		var regemail = new RegExp(/^[a-zA-Z0-9]+([_|\.|-]{1}[a-zA-Z0-9]+)*@[a-zA-Z0-9]+([_|\.|-]­{1}[a-zA-Z0-9]+)*[\.]{1}[a-z]{2,6}$/);
		var pseudo = document.getElementById("pseudo").value;
		var email = document.getElementById("email").value;
		//vérification du pseudo
		if (regpseudo.test(pseudo)) {
			//vérification de l'email
			if (regemail.test(email)) {
				//requete ajax de vérification d'inscription
				try { var xhr = new ActiveXObject('Msxml2.XMLHTTP'); }
				catch (e) {
					try { var xhr = new ActiveXObject('Microsoft.XMLHTTP'); }
					catch (e2) {
						try { var xhr = new XMLHttpRequest(); }
						catch (e3) { var xhr = false; }
					}
				}
				xhr.onreadystatechange = function() {
					if(xhr.readyState  == 4) {
						if(xhr.status  == 200) {
							var res = xhr.responseText;
							if (res == "1") {
								//requete ajax de vérification correspondance pseudo / email
								try { var xhr2 = new ActiveXObject('Msxml2.XMLHTTP'); }
								catch (e4) {
									try { var xhr2 = new ActiveXObject('Microsoft.XMLHTTP'); }
									catch (e5) {
										try { var xhr2 = new XMLHttpRequest(); }
										catch (e6) { var xhr2 = false; }
									}
								}
								xhr2.onreadystatechange = function() {
									if (xhr2.readyState == 4) {
										if (xhr2.status == 200) {
											var reponse = xhr2.responseText;
											if (reponse == "1") {
												var encart = document.getElementById('encart');
												//fermeture de l'encart
												var rem_child = encart.firstChild;
												encart.removeChild(rem_child);
												window.setTimeout('encart.appendChild(document.createElement("div"));', 260);
												window.setTimeout('encart.firstChild.appendChild(document.createElement("h3"));', 270);
												window.setTimeout('encart.firstChild.firstChild.appendChild(document.createTextNode("Inscription : (renvoi du courrier)"));', 300);
												window.setTimeout('var para = document.createElement("p");', 310);
												window.setTimeout('para.setAttribute("class", "valid");', 320);
												window.setTimeout('para.appendChild(document.createTextNode("Le courrier électronique a bien été renvoyé, avec un nouveau mot de passe généré aléatoirement. Si vous ne le recevez toujours pas, contactez l\'administrateur du site."));', 360);
												window.setTimeout('encart.firstChild.appendChild(para);', 380);
												window.setTimeout("obj_inscrip.insClose();", 2700);
											}
											else {
												var result = document.getElementById('result');
												var crea_child = document.createElement("span");
												crea_child.setAttribute("class", "erreur");
												crea_child.appendChild(document.createTextNode("Le pseudonyme ne correspond pas à l'adresse électronique."));
												result.appendChild(crea_child);
											}
										}
									}
								}
								//lancement de l'ajax 
								xhr2.open("POST", "?p=amailv2", true);
								xhr2.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
								var infos_ins = 'info1=' + pseudo + '&info2=' + email;
								xhr2.send(infos_ins);
							}
							else {
								result.appendChild(document.createElement("span"));
								result.firstChild.setAttribute("class", "erreur");
								result.firstChild.appendChild(document.createTextNode("Le pseudonyme n'est pas enregistré. Verifiez que le pseudonyme est bien celui que vous avez rentré lors de l'inscription."));
							}
						}
					}
				}
				//lancement de l'ajax (xhr)
				xhr.open( "POST", "?p=amailv1",  true);
				xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
				var donnees = 'info=' + pseudo;
				xhr.send(donnees);
			}
			else {
				var crea_child = document.createElement("span");
				crea_child.setAttribute("class", "erreur");
				crea_child.appendChild(document.createTextNode("L'adresse électronique n'est pas valide ! (erreur dans l'écriture de l'adresse)"));
				result.appendChild(crea_child);
			}
		}
		else {
			var crea_child = document.createElement("span");
			crea_child.setAttribute("class", "erreur");
			crea_child.appendChild(document.createTextNode("Le pseudonyme n'est pas valide ! (erreur dans l'écriture du pseudonyme)"));
			result.appendChild(crea_child);
		}
	},
	canInsMail: function () {
		//fermeture de l'encart
		for (var i = 0; i < 9; i++) {
			var temp = 40 - i*60;
			window.setTimeout("document.getElementById('encart').style.top = '" + temp + "px';", 50*i);
		}
		//ouverture de l'encart
		window.setTimeout("document.getElementById('encart').removeChild(document.getElementById('encart').firstChild);", 499);
		window.setTimeout("obj_inscrip.openInsC();", 500);
	}
}